package com.sxj.corejava.code04_循环结构;

import java.util.Scanner;

/**
 * @author 石小俊
 * @date 2024年03月07日 20:46
 */
public class Test16_打印菱形 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入菱形的行数(必须是一个奇数):");
        int rows = sc.nextInt();
        if(rows % 2 != 0) {
            // 可以将菱形拆分为等腰三角形与倒等腰三角形
            // 先打印上半面的等腰三角形
            // 将最中间的作为上半面
            // 等腰三角形行数为:rows/2+1
            for (int i = 1; i <= rows / 2 + 1; i++) {
                // 打印空格
                for (int j = 1; j <= rows / 2 + 1 - i; j++) {
                    System.out.print("  ");
                }
                // 打印星号
                for (int j = 1; j <= 2 * i - 1; j++) {
                    System.out.print("* ");
                }
                System.out.println();
            }

            // 再打印下半面的倒等腰三角形
            // 倒等腰三角形行数为:rows/2
            for (int i = 1; i <= rows / 2; i++) {
                // 打印空格
                // 由于此时每一行会多出一个空格,因此,第i行的空格数为:i
                for (int j = 1; j <= i; j++) {
                    System.out.print("  ");
                }
                for (int j = 1; j <= 2 * (rows / 2 - i) + 1; j++) {
                    System.out.print("* ");
                }
                System.out.println();
            }
        } else{
            System.out.println("您输入的数字不是奇数,无法打印菱形");
        }
    }
}
